package org.jnarcissus;

public class DummyClass {

	private boolean boolValue;
	private int intValue;
	private TestObject objValue;
	private int toStringCounter = 0;
	public boolean isShouldThrow() {
		return shouldThrow;
	}

	public void setShouldThrow(boolean shouldThrow) {
		this.shouldThrow = shouldThrow;
	}

	private boolean shouldThrow;
	
	public DummyClass()  {
		
	}
	
	public DummyClass(int toStringCounter) {
		
		this.toStringCounter = toStringCounter;
	}
	
	public DummyClass(String strValue) {
	
		super();
		this.strValue = strValue;
	}

	
	public DummyClass(String strValue, int intValue) {
		
		super();
		
		this.intValue = intValue;
		this.strValue = strValue;
	}

	public int getIntValue() {
		return intValue;
	}

	public TestObject getObjValue() {
			
		return objValue;
	}

	public TestObject getObjValue(String arg1) {
		return objValue;
	}
	
	public void setObjValue(TestObject objValue) {
		this.objValue = objValue;
	}

	public boolean isBoolValue() {
		return boolValue;
	}

	public void setBoolValue(boolean boolValue) {
		this.boolValue = boolValue;
	}

	public void setIntValue(int intValue) {
		this.intValue = intValue;
	}

	private String strValue;

	public String getStrValue() {
		return strValue;
	}

	public String getStrValue(String someArgument) {
		
		return someArgument + strValue;
	}
	
	public void setStrValue(String strValue) {
		this.strValue = strValue;
	}
	
	public String getStrValueThatCallsOtherMethods() {
	
		getIntValue();
		getObjValue();
		
		return strValue;		
	}

	public boolean methodThatThrowsAnException() throws Exception {
		
		if (shouldThrow)
			throw new Exception("This is a exception message.");
		
		return false;
	}
	
	@Override
	public String toString() {
		
		return "DummyClass" + toStringCounter;
	}
	
	public Object methodThatHasMonitoredInstanceArgument(DummyClass monitoredInstance) {
		
		return null;
	}
}
